package com.plantplaces.dao;

import java.util.List;

import com.plantplaces.dto.Plant;
import com.plantplaces.dto.PlantSearch;

/**
 * This interface has method signatures that will be used to persist and lookup plants.
 * @author jonesb
 *
 */
public interface IPlantDAO {

	/**
	 * Fetch plants that match a given criteria.
	 * 
	 * @param ps an object holding plant search criteria.
	 * @return a list of plants matching the criteria.
	 * @throws Exception
	 */
	public List<Plant> fetchPlants(PlantSearch ps) throws Exception;
	
	/**
	 * Provide a list of unique names of plants.
	 * @return a list of unique names of plants.
	 * @throws Exception if we cannot fetch a list of names
	 */
	public List<String> fetchPlantNames() throws Exception;
	
}
